import { NgModule, CUSTOM_ELEMENTS_SCHEMA  } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { NZ_I18N } from 'ng-zorro-antd/i18n';
import { en_US } from 'ng-zorro-antd/i18n';
import { registerLocaleData } from '@angular/common';
import en from '@angular/common/locales/en';
import { FormsModule, ReactiveFormsModule} from '@angular/forms';
import { HttpClientModule  } from '@angular/common/http';
import { BrowserAnimationsModule, NoopAnimationsModule} from '@angular/platform-browser/animations';
import { MyNgZorroAntdModule } from './ng-zorro-antd.module'
import { AppRoutingModule } from "./app-routing.module";
import {LetModule, PushModule} from '@ngrx/component';
import {StepComponent} from "./step/step.component";
import {Step2Component} from "./step2/step2.component";
import { Step1Component } from './step1/step1.component';
import { StoreModule } from '@ngrx/store';
import { StoreDevtoolsModule } from '@ngrx/store-devtools';
import { EffectsModule } from '@ngrx/effects';
import {effects, reducers} from "./store/store";
import {Step3Component} from "./step3/step3.component";
import {Step4Component} from "./step4/step4.component";
registerLocaleData(en);

@NgModule({
  declarations: [
    AppComponent,
    StepComponent,
    Step1Component,
    Step2Component,
    Step3Component,
    Step4Component
  ],
  imports: [
    BrowserModule,
    FormsModule,
    ReactiveFormsModule,
    HttpClientModule,
    BrowserAnimationsModule,
      MyNgZorroAntdModule,
    AppRoutingModule,
    NoopAnimationsModule,
    LetModule,
    PushModule,
    StoreModule.forRoot(reducers),
    EffectsModule.forRoot(effects),
    StoreDevtoolsModule.instrument(),
  ],
  providers: [
    { provide: NZ_I18N, useValue: en_US },
  ],
  bootstrap: [AppComponent],
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule { }
